<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>

    /*
    ==:
        1. 判断类型是否一样，如果不一样，先进行类型转换。
        2. 再去判断其值。

    ===: 全等于
        1. 判断类型是否一样，如果不一样，直接返回false。
        2. 再去判断其值。
    */

    var age1 = 20;
    var age2 = "20";

<!--    alert(age1 == age2); // true-->
<!--    alert(age1 === age2); // false-->

    /*
        类型转换：
            * 其他类型转换为number
                1. string: 转换为字符串的字面值，转为数字; 如果字面值不是数字，则转换为Nan; 一般使用parseInt
                2. boolean: true转换为1, false转换为0.

            * 其他类型转换为boolean.
                1. number: 0和NaN转为false, 其他的数字转为true
                2. string: 空字符转为false, 其他的字符串转为true
                3. null: 转为false
                4. undefined: 转为false.

    */
    var str = "20";
    var str1 = +"abc";

<!--    alert(str1); // NaN-->
<!--    alert(parseInt(str) + 1);-->


    var flag = +true;
    var flag = +false;
<!--    alert(flag);-->


    var flag = 0;
    var flag = NaN;
    var flag = 1;
    var flag = '';
    var flag = 'abc';
    var flag = null;
    var flag = undefined;
<!--    if(flag){
        alert("转换为true");
    }else{
        alert('转换为false');
    }-->



    // 健壮性判断
    var str = "abc";
<!--    if(str != null && str.length > 0){-->
    if(str){
        alert("转换为true");
    }else{
        alert('转换为false');
    }




</script>



</body>
</html>